﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////

// Reviewed

#pragma once
#include "GcmpGeometryInterface.h"
#include "Vector3d.h"


namespace gcmp
{
    typedef std::vector<Vector3d> Vector3dList;
    typedef std::vector<Vector2d> Vector2dList;

    /// 离散精度（分为距离精度和角度精度）
    struct GCMP_GEOMETRY_INTERFACE_EXPORT DiscreteEpsilon
    {
        /// 距离精度
        double dDistEpsilon;
        /// 角度精度
        double dAngleEpsilon;

        bool operator == (const DiscreteEpsilon& other) const;

        bool IsValid() const;
    };

    // 三角面片，存放三角面片的三个顶点的序号
    struct TrianglePatch
    {
        /// 三角面片三个顶点的序号
        int nVertexIndexList[3]; 

        TrianglePatch() { nVertexIndexList[0] = nVertexIndexList[1] = nVertexIndexList[2] = -1; }
    };
}